<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>AI侦探大作业项目需求文档</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: "Microsoft YaHei", Arial, sans-serif;
        }
        body {
            background-color: #f5f7fa;
            color: #333;
            line-height: 1.6;
            padding: 20px;
        }
        .container {
            max-width: 1200px;
            margin: 0 auto;
            background-color: #fff;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            padding: 30px;
        }
        header {
            text-align: center;
            margin-bottom: 40px;
            padding-bottom: 20px;
            border-bottom: 2px solid #007bff;
        }
        header h1 {
            color: #007bff;
            font-size: 2.2rem;
            margin-bottom: 10px;
        }
        .nav {
            margin: 30px 0;
            background-color: #f8f9fa;
            padding: 15px;
            border-radius: 6px;
        }
        .nav ul {
            list-style: none;
            display: flex;
            flex-wrap: wrap;
            gap: 20px;
        }
        .nav a {
            text-decoration: none;
            color: #007bff;
            font-weight: 500;
            padding: 5px 10px;
            border-radius: 4px;
            transition: background-color 0.3s;
        }
        .nav a:hover {
            background-color: #e9ecef;
        }
        .section {
            margin-bottom: 40px;
        }
        .section h2 {
            color: #2c3e50;
            font-size: 1.8rem;
            margin-bottom: 20px;
            padding-left: 15px;
            border-left: 4px solid #007bff;
        }
        .section h3 {
            color: #34495e;
            font-size: 1.4rem;
            margin: 15px 0;
        }
        .requirement-item {
            background-color: #f8f9fa;
            padding: 15px;
            border-radius: 6px;
            margin-bottom: 15px;
            border-left: 3px solid #28a745;
        }
        .requirement-item p {
            margin: 5px 0;
        }
        .requirement-id {
            font-weight: bold;
            color: #28a745;
        }
        .non-functional {
            border-left-color: #ffc107;
        }
        .non-functional .requirement-id {
            color: #ffc107;
        }
        .data-requirement {
            border-left-color: #dc3545;
        }
        .data-requirement .requirement-id {
            color: #dc3545;
        }
        .interface-requirement {
            border-left-color: #17a2b8;
        }
        .interface-requirement .requirement-id {
            color: #17a2b8;
        }
        footer {
            text-align: center;
            margin-top: 50px;
            padding-top: 20px;
            border-top: 1px solid #e9ecef;
            color: #6c757d;
        }
    </style>
</head>
<body>
    <div class="container">
        <header>
            <h1>AI侦探大作业项目需求文档</h1>
            <p>版本：V1.0 | 日期：2025年</p>
        </header>

        <nav class="nav">
            <ul>
                <li><a href="#project-overview">1. 项目概述</a></li>
                <li><a href="#functional-requirements">2. 功能需求</a></li>
                <li><a href="#non-functional-requirements">3. 非功能需求</a></li>
                <li><a href="#data-requirements">4. 数据需求</a></li>
                <li><a href="#interface-requirements">5. 界面交互需求</a></li>
            </ul>
        </nav>

        <!-- 1. 项目概述 -->
        <section id="project-overview" class="section">
            <h2>1. 项目概述</h2>
            <h3>1.1 项目目标</h3>
            <p>开发一款AI侦探辅助系统，通过AI技术实现案件信息管理、线索分析、推理建议生成等功能，辅助用户模拟侦探办案流程，完成大作业实践目标，提升AI技术应用与案件分析逻辑能力。</p>
            <h3>1.2 项目范围</h3>
            <p>覆盖“案件录入-线索采集-AI分析-推理报告-案件归档”全流程功能，不包含真实案件数据接入、公安系统对接等超出大作业范畴的功能。</p>
        </section>

        <!-- 2. 功能需求 -->
        <section id="functional-requirements" class="section">
            <h2>2. 功能需求</h2>

            <!-- 2.1 案件管理模块 -->
            <h3>2.1 案件管理模块</h3>
            <div class="requirement-item">
                <p><span class="requirement-id">FR-001</span> 案件创建功能：用户可输入案件基础信息（案件名称、案件类型、案发时间、案发地点、报案人信息），点击“创建案件”按钮后，系统保存数据并生成唯一案件ID。</p>
            </div>
            <div class="requirement-item">
                <p><span class="requirement-id">FR-002</span> 案件查询功能：用户可通过案件ID、案件名称、案发时间范围筛选查询案件，查询结果以列表形式展示（包含案件ID、名称、状态、创建时间），点击列表项可进入案件详情页。</p>
            </div>
            <div class="requirement-item">
                <p><span class="requirement-id">FR-003</span> 案件编辑功能：在案件详情页，用户可修改案件基础信息（除案件ID外），修改后点击“保存修改”按钮，系统更新数据并提示“修改成功”。</p>
            </div>
            <div class="requirement-item">
                <p><span class="requirement-id">FR-004</span> 案件归档功能：用户可对状态为“未归档”的案件点击“归档”按钮，选择归档原因（案件侦破、案件终止），系统更新案件状态为“已归档”并记录归档时间。</p>
            </div>

            <!-- 2.2 线索采集模块 -->
            <h3>2.2 线索采集模块</h3>
            <div class="requirement-item">
                <p><span class="requirement-id">FR-005</span> 线索手动录入功能：用户进入指定案件的线索管理页，可选择线索类型（物证、人证、口供、监控记录），输入线索内容（如物证名称、位置、描述；人证姓名、联系方式、证言），点击“添加线索”按钮保存线索。</p>
            </div>
            <div class="requirement-item">
                <p><span class="requirement-id">FR-006</span> 线索附件上传功能：录入线索时，用户可上传附件（图片、文档，支持格式：JPG、PNG、PDF、DOCX，单个文件大小≤10MB），系统生成附件预览链接，点击可查看附件内容。</p>
            </div>
            <div class="requirement-item">
                <p><span class="requirement-id">FR-007</span> 线索分类查看功能：在线索管理页，用户可按线索类型筛选查看线索，每条线索展示“线索ID、类型、录入时间、摘要”，点击线索可查看完整内容及附件。</p>
            </div>

            <!-- 2.3 AI分析模块 -->
            <h3>2.3 AI分析模块</h3>
            <div class="requirement-item">
                <p><span class="requirement-id">FR-008</span> 线索关联分析功能：用户在案件详情页点击“AI线索分析”按钮，系统自动提取该案件下所有线索的关键词（如时间、地点、人物、物品），生成线索关联图谱（节点为线索，连线标注关联关系，如“物证A发现于嫌疑人B住所”），图谱支持缩放、拖拽查看。</p>
            </div>
            <div class="requirement-item">
                <p><span class="requirement-id">FR-009</span> 嫌疑人排查建议功能：系统基于线索信息（如证言提及的人物、物证关联的人员），生成嫌疑人列表，标注“可疑度”（高/中/低）及可疑依据（如“证人C指认其案发时在场”），用户可点击“添加为嫌疑人”将其纳入案件嫌疑人管理。</p>
            </div>
            <div class="requirement-item">
                <p><span class="requirement-id">FR-010</span> 推理方向建议功能：系统分析线索缺口（如“缺少案发时间段监控记录”“嫌疑人无不在场证明未核实”），生成3-5条推理方向建议（如“优先调取案发地点附近商铺监控”“核实嫌疑人案发时行动轨迹”），展示在分析报告中。</p>
            </div>

            <!-- 2.4 报告生成模块 -->
            <h3>2.4 报告生成模块</h3>
            <div class="requirement-item">
                <p><span class="requirement-id">FR-011</span> 分析报告生成功能：用户点击“生成分析报告”按钮，系统自动整合案件基础信息、线索列表、AI关联分析结果、嫌疑人建议、推理方向，生成Word格式报告（包含报告标题、生成时间、目录、正文），支持下载到本地。</p>
            </div>
            <div class="requirement-item">
                <p><span class="requirement-id">FR-012</span> 报告预览功能：生成报告前，系统提供预览界面，展示报告完整内容（不含格式错乱），用户可点击“返回修改”重新调整分析参数，或点击“确认生成”触发下载。</p>
            </div>
        </section>

        <!-- 3. 非功能需求 -->
        <section id="non-functional-requirements" class="section">
            <h2>3. 非功能需求</h2>

            <h3>3.1 性能需求</h3>
            <div class="requirement-item non-functional">
                <p><span class="requirement-id">NFR-001</span> 响应时间：案件创建、线索添加、查询等简单操作响应时间≤1秒；AI线索分析（含图谱生成）响应时间≤5秒；报告生成（50条以内线索）响应时间≤3秒。</p>
            </div>
            <div class="requirement-item non-functional">
                <p><span class="requirement-id">NFR-002</span> 并发能力：支持10名用户同时在线操作（含案件管理、线索录入、AI分析），系统无卡顿、数据无丢失。</p>
            </div>

            <h3>3.2 易用性需求</h3>
            <div class="requirement-item non-functional">
                <p><span class="requirement-id">NFR-003</span> 界面引导：首次使用系统时，弹出新手引导弹窗（步骤：创建案件→添加线索→AI分析→生成报告），每个功能按钮 hover 时显示功能说明提示（如“点击添加案件相关线索”）。</p>
            </div>
            <div class="requirement-item non-functional">
                <p><span class="requirement-id">NFR-004</span> 操作容错：用户输入非法数据（如案发时间格式错误、附件格式不支持）时，系统实时提示错误原因（如“请输入正确的时间格式：YYYY-MM-DD HH:MM”“仅支持JPG/PNG/PDF/DOCX格式附件”），不强制刷新页面。</p>
            </div>

            <h3>3.3 安全性需求</h3>
            <div class="requirement-item non-functional">
                <p><span class="requirement-id">NFR-005</span> 数据存储：用户输入的案件、线索数据本地存储（采用SQLite数据库），数据文件加密（密码由用户首次使用时设置，忘记密码可通过“重置密码”功能重新设置，重置后需重新登录）。</p>
            </div>
            <div class="requirement-item non-functional">
                <p><span class="requirement-id">NFR-006</span> 操作日志：系统记录用户关键操作（案件创建/编辑/归档、线索添加/删除、报告生成），包含操作人（当前登录用户名）、操作时间、操作内容，日志可在“系统设置-操作日志”中查看，不可修改。</p>
            </div>
        </section>

        <!-- 4. 数据需求 -->
        <section id="data-requirements" class="section">
            <h2>4. 数据需求</h2>
            <div class="requirement-item data-requirement">
                <p><span class="requirement-id">DR-001</span> 案件数据结构：包含字段（案件ID：字符串，主键；案件名称：字符串；案件类型：枚举（盗窃、诈骗、伤害、其他）；案发时间：datetime；案发地点：字符串；报案人姓名：字符串；报案人电话：字符串；案件状态：枚举（未归档、已归档）；创建时间：datetime；归档时间：datetime；归档原因：字符串）。</p>
            </div>
            <div class="requirement-item data-requirement">
                <p><span class="requirement-id">DR-002</span> 线索数据结构：包含字段（线索ID：字符串，主键；案件ID：字符串，外键（关联案件表）；线索类型：枚举（物证、人证、口供、监控记录）；线索内容：文本；附件路径：字符串（本地存储路径）；录入时间：datetime；录入人：字符串（当前用户名））。</p>
            </div>
            <div class="requirement-item data-requirement">
                <p><span class="requirement-id">DR-003</span> 嫌疑人数据结构：包含字段（嫌疑人ID：字符串，主键；案件ID：字符串，外键（关联案件表）；姓名：字符串；性别：枚举（男、女、其他）；年龄：整数；联系方式：字符串；可疑度：枚举（高、中、低）；可疑依据：文本；添加时间：datetime）。</p>
            </div>
            <div class="requirement-item data-requirement">
                <p><span class="requirement-id">DR-004</span> 操作日志数据结构：包含字段（日志ID：字符串，主键；操作人：字符串；操作类型：字符串（如“创建案件”“添加线索”）；操作内容：文本（如“创建案件ID：CASE2025001”）；操作时间：datetime）。</p>
            </div>
        </section>

        <!-- 5. 界面交互需求 -->
        <section id="interface-requirements" class="section">
            <h2>5. 界面交互需求</h2>
            <div class="requirement-item interface-requirement">
                <p><span class="requirement-id">IR-001</span> 首页布局：顶部为系统名称“AI侦探辅助系统”，中间为功能入口区域（“创建案件”“案件管理”“我的报告”三个卡片式按钮，hover时放大10%），底部为版本信息与操作指南入口。</p>
            </div>
            <div class="requirement-item interface-requirement">
                <p><span class="requirement-id">IR-002</span> 案件详情页布局：左侧为案件信息栏（展示案件基础信息，固定宽度250px），中间为功能导航栏（“线索管理”“AI分析”“报告生成”选项卡，点击切换对应内容），右侧为操作区（当前功能的操作按钮，如“添加线索”“生成图谱”）。</p>
            </div>
            <div class="requirement-item interface